package com.rainbowsea.springboot.config;


import com.alibaba.druid.pool.DruidDataSource;
import com.alibaba.druid.support.http.StatViewServlet;
import com.alibaba.druid.support.http.WebStatFilter;
import org.springframework.boot.SpringBootConfiguration;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import javax.sql.DataSource;
import java.sql.SQLException;
import java.util.Arrays;


@Configuration  // 标注配置类
public class DruidConfig {

    // 编写方法，注入 DruidDataSource

    @Bean // 注入到 ioc 容器当中，没有指明名字，默认方法名就是 id/名称
    // 老师还有一个说明为什么我们注入自己DataSource,默认的HirKarDatasource失效的
    @ConfigurationProperties(value = "spring.datasource") // 该注解，让 application.yaml
    // 当中配置的信息，根据其后缀，将其配置到该类的属性 set()方法当中进行一个赋值操作。
    // 注入到 ioc 容器当中。
    public DataSource dataSource() throws SQLException {

        // 1.配置了 @ConfigurationProperties("spring.datasource")
        // 就可以读取到application.yaml的配置
        // 2.我们就不需要调用DruidDataSource 对象的setXX,会自动关联


        DruidDataSource druidDataSource = new DruidDataSource();
        //druidDataSource.setUrl();
        //druidDataSource.setUsername();
        //druidDataSource.setPassword();


        return druidDataSource;
    }


}

